home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Micro Mail / MicroMail.jar / MessageHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-09-14  |  4.5 KB  |  224 lines

  1. import com.siemens.mp.io.File;
  2. import java.io.ByteArrayInputStream;
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.DataInputStream;
  5. import java.io.DataOutputStream;
  6. import java.util.Vector;
  7.  
  8. public class MessageHandler {
  9.    protected static final int ID_Inbox = 1;
  10.    protected static final int ID_Outbox = 2;
  11.    protected static final int ID_SentItems = 3;
  12.    protected static final int ID_DeletedItems = 4;
  13.    private static int retCode;
  14.    private static int iRecordsNo = -1;
  15.    static final String tempFileName = "box.tmp";
  16.    private static final int buffLen = 2048;
  17.  
  18.    public static void closeFile() {
  19.       try {
  20.          Globals.file.close(Globals.fileDesc);
  21.       } catch (Exception var0) {
  22.       }
  23.  
  24.    }
  25.  
  26.    public static void deleteBox(int var0) {
  27.       try {
  28.          String var1 = getFileName(var0) + Globals.fileExtension;
  29.          File var10000 = Globals.file;
  30.          int var2 = File.delete(var1);
  31.       } catch (Exception var3) {
  32.       }
  33.  
  34.    }
  35.  
  36.    public static void deleteRecord(int var0, int var1) {
  37.       try {
  38.          try {
  39.             File var10000 = Globals.file;
  40.             File.delete("box.tmp");
  41.          } catch (Exception var6) {
  42.          }
  43.  
  44.          openFile(var0);
  45.          Globals.fileDesc2 = Globals.file2.open("box.tmp");
  46.  
  47.          for(int var2 = 0; var2 < var1; ++var2) {
  48.             Globals.file.seek(Globals.fileDesc, 2048 * var2);
  49.             Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  50.             Globals.file2.seek(Globals.fileDesc2, 2048 * var2);
  51.             Globals.file2.write(Globals.fileDesc2, Globals.byteArray, 0, 2048);
  52.          }
  53.  
  54.          for(int var3 = var1 + 1; var3 < iRecordsNo; ++var3) {
  55.             Globals.file.seek(Globals.fileDesc, 2048 * var3);
  56.             Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  57.             Globals.file2.seek(Globals.fileDesc2, 2048 * (var3 - 1));
  58.             Globals.file2.write(Globals.fileDesc2, Globals.byteArray, 0, 2048);
  59.          }
  60.  
  61.          closeFile();
  62.          Globals.file2.close(Globals.fileDesc2);
  63.          deleteBox(var0);
  64.          String var4 = getFileName(var0);
  65.          File var8 = Globals.file2;
  66.          int var5 = File.rename("box.tmp", var4 + Globals.fileExtension);
  67.       } catch (Exception var7) {
  68.       }
  69.  
  70.    }
  71.  
  72.    public static String getBoxName(int var0) {
  73.       String var1 = "?error?";
  74.       switch (var0) {
  75.          case 1:
  76.             var1 = MicroMail.r.getText(52);
  77.             break;
  78.          case 2:
  79.             var1 = MicroMail.r.getText(53);
  80.             break;
  81.          case 3:
  82.             var1 = MicroMail.r.getText(54);
  83.             break;
  84.          case 4:
  85.             var1 = MicroMail.r.getText(55);
  86.       }
  87.  
  88.       return var1;
  89.    }
  90.  
  91.    public static String getFileName(int var0) {
  92.       String var1 = "?error?";
  93.       switch (var0) {
  94.          case 1:
  95.             var1 = "Inbox";
  96.             break;
  97.          case 2:
  98.             var1 = "Outbox";
  99.             break;
  100.          case 3:
  101.             var1 = "Sent";
  102.             break;
  103.          case 4:
  104.             var1 = "Deleted";
  105.       }
  106.  
  107.       return var1;
  108.    }
  109.  
  110.    public static Message getMessage(int var0) {
  111.       Message var1 = new Message();
  112.  
  113.       try {
  114.          Globals.file.seek(Globals.fileDesc, 2048 * var0);
  115.          Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  116.          ByteArrayInputStream var2 = new ByteArrayInputStream(Globals.byteArray);
  117.          DataInputStream var3 = new DataInputStream(var2);
  118.          var1.ID = var0;
  119.          var1.subject = var3.readUTF();
  120.          var1.unread = var3.readBoolean();
  121.          var1.from = var3.readUTF();
  122.          var1.to = var3.readUTF();
  123.          var1.replyTo = var3.readUTF();
  124.          var1.cc = var3.readUTF();
  125.          var1.bcc = var3.readUTF();
  126.          var1.date = var3.readUTF();
  127.          var1.contentType = var3.readUTF();
  128.          var1.body = var3.readUTF();
  129.          var3.close();
  130.          Object var6 = null;
  131.          var2.close();
  132.          Object var5 = null;
  133.       } catch (Exception var4) {
  134.       }
  135.  
  136.       return var1;
  137.    }
  138.  
  139.    public static Vector getMessageListByBox(int var0) {
  140.       try {
  141.          Vector var1 = new Vector(iRecordsNo);
  142.  
  143.          for(int var2 = 0; var2 < iRecordsNo; ++var2) {
  144.             var1.addElement(getMessageListItem(var2));
  145.          }
  146.  
  147.          return var1;
  148.       } catch (Exception var3) {
  149.          return null;
  150.       }
  151.    }
  152.  
  153.    public static MessageListItem getMessageListItem(int var0) {
  154.       MessageListItem var1 = new MessageListItem();
  155.  
  156.       try {
  157.          Globals.file.seek(Globals.fileDesc, 2048 * var0);
  158.          Globals.file.read(Globals.fileDesc, Globals.byteArray, 0, 2048);
  159.          ByteArrayInputStream var2 = new ByteArrayInputStream(Globals.byteArray);
  160.          DataInputStream var3 = new DataInputStream(var2);
  161.          var1.subject = var3.readUTF();
  162.          var1.unread = var3.readBoolean();
  163.          var3.close();
  164.          Object var6 = null;
  165.          var2.close();
  166.          Object var5 = null;
  167.       } catch (Exception var4) {
  168.       }
  169.  
  170.       return var1;
  171.    }
  172.  
  173.    public static void openFile(int var0) {
  174.       try {
  175.          Globals.fileDesc = Globals.file.open(getFileName(var0) + Globals.fileExtension);
  176.          iRecordsNo = Globals.file.length(Globals.fileDesc) / 2048;
  177.       } catch (Exception var1) {
  178.       }
  179.  
  180.    }
  181.  
  182.    public static void storeMessage(Message var0, int var1) {
  183.       ByteArrayOutputStream var3 = new ByteArrayOutputStream();
  184.       DataOutputStream var4 = new DataOutputStream(var3);
  185.  
  186.       try {
  187.          var4.writeUTF(var0.subject);
  188.          var4.writeBoolean(var0.unread);
  189.          var4.writeUTF(var0.from);
  190.          var4.writeUTF(var0.to);
  191.          var4.writeUTF(var0.replyTo);
  192.          var4.writeUTF(var0.cc);
  193.          var4.writeUTF(var0.bcc);
  194.          var4.writeUTF(var0.date);
  195.          var4.writeUTF(var0.contentType);
  196.          if (var0.body == null) {
  197.             var4.writeShort(Globals.bodyLen);
  198.             var4.write(Globals.byteArray, Globals.bodyStart, Globals.bodyLen);
  199.          } else {
  200.             var4.writeUTF(var0.body);
  201.          }
  202.  
  203.          byte[] var2 = var3.toByteArray();
  204.          var4.close();
  205.          Object var8 = null;
  206.          var3.close();
  207.          Object var7 = null;
  208.          if (var0.ID < 0) {
  209.             Globals.file.seek(Globals.fileDesc, Globals.file.length(Globals.fileDesc));
  210.             Globals.file.write(Globals.fileDesc, var2, 0, 2048);
  211.             var0.ID = iRecordsNo++;
  212.          } else {
  213.             Globals.file.seek(Globals.fileDesc, 2048 * var0.ID);
  214.             Globals.file.write(Globals.fileDesc, var2, 0, 2048);
  215.          }
  216.       } catch (Exception var6) {
  217.          System.out.println("error");
  218.          ((Throwable)var6).printStackTrace();
  219.       }
  220.  
  221.       System.gc();
  222.    }
  223. }
  224.